`ifndef BUS_TRANSACTION_SV
`define BUS_TRANSACTION_SV

typedef enum {BUS_RD, BUS_WR} bus_op_e;

class transaction_bus extends uvm_sequence_item;
	rand bit[15:0] rd_data;
	rand bit[15:0] wr_data;
	rand bit[15:0] addr;
    
    rand bus_op_e bus_op;

	`uvm_object_utils_begin(transaction_bus)
		`uvm_field_int(rd_data, UVM_ALL_ON);
		`uvm_field_int(wr_data, UVM_ALL_ON);
		`uvm_field_int(addr, UVM_ALL_ON);
		`uvm_field_enum(bus_op_e, bus_op, UVM_ALL_ON);
	`uvm_object_utils_end

	function new(string name = "transaction_bus");
		super.new(name);
	endfunction

endclass

`endif
